!(function (t, i) {
  'object' == typeof exports && 'undefined' != typeof module
    ? (module.exports = i())
    : 'function' == typeof define && define.amd
      ? define(i)
      : ((t =
          'undefined' != typeof globalThis
            ? globalThis
            : t || self).dayjs_plugin_utc = i());
})(this, function () {
  'use strict';
  var t = 'minute',
    i = /[+-]\d\d(?::?\d\d)?/g,
    e = /([+-]|\d\d)/g;
  return function (s, f, n) {
    var u = f.prototype;
    (n.utc = function (t) {
      var i = { date: t, utc: !0, args: arguments };
      return new f(i);
    }),
      (u.utc = function (i) {
        var e = n(this.toDate(), { locale: this.$L, utc: !0 });
        return i ? e.add(this.utcOffset(), t) : e;
      }),
      (u.local = function () {
        return n(this.toDate(), { locale: this.$L, utc: !1 });
      });
    var o = u.parse;
    u.parse = function (t) {
      t.utc && (this.$u = !0),
        this.$utils().u(t.$offset) || (this.$offset = t.$offset),
        o.call(this, t);
    };
    var r = u.init;
    u.init = function () {
      if (this.$u) {
        var t = this.$d;
        (this.$y = t.getUTCFullYear()),
          (this.$M = t.getUTCMonth()),
          (this.$D = t.getUTCDate()),
          (this.$W = t.getUTCDay()),
          (this.$H = t.getUTCHours()),
          (this.$m = t.getUTCMinutes()),
          (this.$s = t.getUTCSeconds()),
          (this.$ms = t.getUTCMilliseconds());
      } else r.call(this);
    };
    var a = u.utcOffset;
    u.utcOffset = function (s, f) {
      var n = this.$utils().u;
      if (n(s))
        return this.$u ? 0 : n(this.$offset) ? a.call(this) : this.$offset;
      if (
        'string' == typeof s &&
        ((s = (function (t) {
          void 0 === t && (t = '');
          var s = t.match(i);
          if (!s) return null;
          var f = ('' + s[0]).match(e) || ['-', 0, 0],
            n = f[0],
            u = 60 * +f[1] + +f[2];
          return 0 === u ? 0 : '+' === n ? u : -u;
        })(s)),
        null === s)
      )
        return this;
      var u = Math.abs(s) <= 16 ? 60 * s : s,
        o = this;
      if (f) return (o.$offset = u), (o.$u = 0 === s), o;
      if (0 !== s) {
        var r = this.$u
          ? this.toDate().getTimezoneOffset()
          : -1 * this.utcOffset();
        ((o = this.local().add(u + r, t)).$offset = u), (o.$x.$localOffset = r);
      } else o = this.utc();
      return o;
    };
    var h = u.format;
    (u.format = function (t) {
      var i = t || (this.$u ? 'YYYY-MM-DDTHH:mm:ss[Z]' : '');
      return h.call(this, i);
    }),
      (u.valueOf = function () {
        var t = this.$utils().u(this.$offset)
          ? 0
          : this.$offset +
            (this.$x.$localOffset || new Date().getTimezoneOffset());
        return this.$d.valueOf() - 6e4 * t;
      }),
      (u.isUTC = function () {
        return !!this.$u;
      }),
      (u.toISOString = function () {
        return this.toDate().toISOString();
      }),
      (u.toString = function () {
        return this.toDate().toUTCString();
      });
    var l = u.toDate;
    u.toDate = function (t) {
      return 's' === t && this.$offset
        ? n(this.format('YYYY-MM-DD HH:mm:ss:SSS')).toDate()
        : l.call(this);
    };
    var c = u.diff;
    u.diff = function (t, i, e) {
      if (t && this.$u === t.$u) return c.call(this, t, i, e);
      var s = this.local(),
        f = n(t).local();
      return c.call(s, f, i, e);
    };
  };
});
